Existing approaches to three-dimensional (3D) printing take as input a 3D model and produce a plan for creating the 3D model that is essentially a layer-by-layer decomposition of the input model.
The rise of additive manufacturing has given users unprecedented freedom and flexibility in manufacturing objects of arbitrary geometry. In general, the object is created by a computational determination of a toolpath which is executed by a 3D printer. Fused deposition modeling (FDM), a widely used form of additive manufacturing, builds a model incrementally by depositing substrate that becomes fused to other, already extruded substrate. FDM allows more flexibility in choice of material than other methods of additive manufacturing but sacrifices speed in doing so. A major limitation of this approach is the large amount of machining time (hours to days) that is required to print complex parts. As a typical example, for models with multiple distinct parts, the printer typically spends a large fraction of its time traveling between extrusions. The standard toolpath generation process exacerbates the problem since the printer must complete all instructions on a given layer before moving on to the next.
Toolpath generation for 3D printers inherits directly from the computerized numerical control (CNC) milling problem. Current path planning algorithms for 3D printers utilize the iso-planar toolpath generation technique in its adaptive and non-adaptive forms. Adaptive iso-planar toolpath generation changes the layer height used to describe a model according to the surface complexity of the part which can reduce total manufacturing time.
The (nonadaptive) iso-planar technique takes a model from a CAD application and slices it with parallel planes yielding a series of contours. These contours can then be approximated by a series of contact points which the printerhead must interpolate. Several techniques have been proposed to apply optimization procedures to toolpaths to reduce the total airtime needed to produce a part, but they only consider the toolpath in a single layer. This negatively affects production time because this approach introduces wasted motion in which printer is not actually printing. Consequently, the printerhead must move farther to print out the same model and each motion costs some additional amount of time and energy.